package Logica_Moviemientos;

import Mapa.*;
import Personajes.*;
public class Gravedad extends Thread{
	protected Mapa mapa;
	protected boolean activada;
	
	/**Constructor. */
	public Gravedad(Mapa map){
		mapa = map;
		activada = true;
	}
	
	/**Activa o desactiva la gravedad. */
	public void setGravedad(boolean b){
		activada = b;
	}
	
	/**Aplica la gravedad a un personaje pasado por parametro. */
	public void aplicar(Personaje p){
		//Si no hay obstaculos aplica la gravedad
		if(!mapa.colisionAbajo(p)){
			p.setLocation(p.getX(), p.getY() + 4);
			p.setPosicion(p.obtenerX(), p.obtenerY() + 4);
		}
		try {
			Thread.sleep(10);
		} catch (InterruptedException e) {
			System.out.println("Inteligencia :: aplicar()");
		}
	}
	
	@Override
	public void run() {
		while(true){
			if(activada) aplicar(mapa.obtenerMario());	
			for(Personaje p : mapa.obtenerEnemigos()){
				aplicar(p);
			}
			if(mapa.obtenerMario().obtenerY() > mapa.obtenerAlto()){
				mapa.obtenerMario().setMurio();
			}
		}
	}

}
